<?php
	/**
     * Incluyendo el archivo donde se encuentra la clase xajax
     */
	 require_once $_SERVER['DOCUMENT_ROOT'] . '/spa/xajax/xajax_core/xajax.inc.php';

    /**
     * Instanciando un objeto de la clase xajax
     */
	 $xajax = new xajax();
	 
	 $rif = $HTTP_GET_VARS['rif']; // Para que el usuario pueda regresar al local
	 
	/**
     * Escribiendo una función que será llamada por medio de ajax
     */
	function insertar_direccion($direccion) {
		$pais = $direccion['pais'];
		$estado = $direccion['estado'];
		$ciudad = $direccion['ciudad'];
		
		$cambioPais = false;
		$cambioEstado = false;
		$cambioCiudad = false;
						
		$mensaje = '';
		
		$conexion = OCILogon ('spa','1234') or die( "¡No se pudo conectar a la base de Datos!") or die (OCIError());
		
		$query = "SELECT PK_ID_PAIS
				  FROM PAIS
				  WHERE NOMBRE_PAIS = INITCAP('$pais')";
	
    	$sentencia = OCIParse($conexion, $query);
	
		OCIExecute($sentencia);
		
		$rows = OCIFetchstatement($sentencia, $resultado);
		
		if ($rows > 0) { // El país existe
			$idPais = $resultado['PK_ID_PAIS'][0];
		
			$query = "SELECT PK_ID_ESTADO
			          FROM ESTADO
					  WHERE NOMBRE_EDO = INITCAP('$estado')
					  AND PK_FK_ID_PAIS = $idPais";
					  
			$sentencia = OCIParse($conexion, $query);
	
			OCIExecute($sentencia);
			
			$rows = OCIFetchstatement($sentencia, $resultado);
			
			if ($rows > 0) { // El estado existe dentro del país
				$idEstado = $resultado['PK_ID_ESTADO'][0];
				
				$query = "SELECT PK_ID_CIUDAD
				          FROM CIUDAD
						  WHERE NOMBRE_CIUDAD = INITCAP('$ciudad')
						  AND PK_FK_ID_PAIS = $idPais
						  AND PK_FK_ID_ESTADO = $idEstado";
						  
				$sentencia = OCIParse($conexion, $query);
	
				OCIExecute($sentencia);
			
				$rows = OCIFetchstatement($sentencia, $resultado);
				
				if ($rows > 0) // La ciudad existe dentro del estado
					$idCiudad = $resultado['PK_ID_CIUDAD'][0];
				
				else { // La ciudad no existe dentro del estado
					if ($ciudad != '') {
						$cambioCiudad = true;
						
						$query = "INSERT INTO CIUDAD VALUES (INITCAP('$ciudad'), PK_ID_CIUDAD.NEXTVAL, $idEstado, $idPais)";
				
						$sentencia = OCIParse($conexion, $query);
				
						OCIExecute($sentencia);
				
						OCICommit($conexion);
				
						$query = "SELECT MAX(PK_ID_CIUDAD) PK_ID_CIUDAD
			        		  	  FROM CIUDAD";
			
						$sentencia = OCIParse($conexion, $query);
	
						OCIExecute($sentencia);
			
						$rows = OCIFetchstatement($sentencia, $resultado);
		
						if ($rows > 0)
							$idCiudad = $resultado['PK_ID_CIUDAD'][0];
					}
				}
				
			}
				
			else { // El estado no existe dentro del país
				if ($estado != '') {
					$cambioEstado = true;
					
					$query = "INSERT INTO ESTADO VALUES (INITCAP('$estado'), PK_ID_ESTADO.NEXTVAL, $idPais)";
				
					$sentencia = OCIParse($conexion, $query);
				
					OCIExecute($sentencia);
				
					OCICommit($conexion);
				
					$query = "SELECT MAX(PK_ID_ESTADO) PK_ID_ESTADO
			        	  	  FROM ESTADO";
			
					$sentencia = OCIParse($conexion, $query);
	
					OCIExecute($sentencia);
			
					$rows = OCIFetchstatement($sentencia, $resultado);
		
					if ($rows > 0)
						$idEstado = $resultado['PK_ID_ESTADO'][0];
						
						
						
					if ($ciudad != '') {
						$cambioCiudad = true;
						
						$query = "INSERT INTO CIUDAD VALUES (INITCAP('$ciudad'), PK_ID_CIUDAD.NEXTVAL, $idEstado, $idPais)";
			
						$sentencia = OCIParse($conexion, $query);
	
						OCIExecute($sentencia);
			
						OCICommit($conexion);
			
						$query = "SELECT MAX(PK_ID_CIUDAD) PK_ID_CIUDAD
			    			      FROM CIUDAD";
			
						$sentencia = OCIParse($conexion, $query);
	
						OCIExecute($sentencia);
			
						$rows = OCIFetchstatement($sentencia, $resultado);
		
						if ($rows > 0)
							$idCiudad = $resultado['PK_ID_CIUDAD'][0];
					}
				}
			}
		}
		
		else { // El país no existe
			$cambioPais = true;
			
			$query = "INSERT INTO PAIS VALUES (INITCAP('$pais'), PK_ID_PAIS.NEXTVAL)";
			
			$sentencia = OCIParse($conexion, $query);
	
			OCIExecute($sentencia);
			
			OCICommit($conexion);
			
			$query = "SELECT MAX(PK_ID_PAIS) PK_ID_PAIS
			          FROM PAIS";
			
			$sentencia = OCIParse($conexion, $query);
	
			OCIExecute($sentencia);
			
			$rows = OCIFetchstatement($sentencia, $resultado);
		
			if ($rows > 0)
				$idPais = $resultado['PK_ID_PAIS'][0];				
				
				
			
			if ($estado != '') {
				$cambioEstado = true;
				
				$query = "INSERT INTO ESTADO VALUES (INITCAP('$estado'), PK_ID_ESTADO.NEXTVAL, $idPais)";
			
				$sentencia = OCIParse($conexion, $query);
	
				OCIExecute($sentencia);
			
				OCICommit($conexion);
			
				$query = "SELECT MAX(PK_ID_ESTADO) PK_ID_ESTADO
			    	      FROM ESTADO";
			
				$sentencia = OCIParse($conexion, $query);
	
				OCIExecute($sentencia);
			
				$rows = OCIFetchstatement($sentencia, $resultado);
		
				if ($rows > 0)
					$idEstado = $resultado['PK_ID_ESTADO'][0];
					
					
					
				if ($ciudad != '') {
					$cambioCiudad = true;
					
					$query = "INSERT INTO CIUDAD VALUES (INITCAP('$ciudad'), PK_ID_CIUDAD.NEXTVAL, $idEstado, $idPais)";
			
					$sentencia = OCIParse($conexion, $query);
	
					OCIExecute($sentencia);
			
					OCICommit($conexion);
			
					$query = "SELECT MAX(PK_ID_CIUDAD) PK_ID_CIUDAD
			        		  FROM CIUDAD";
			
					$sentencia = OCIParse($conexion, $query);
	
					OCIExecute($sentencia);
			
					$rows = OCIFetchstatement($sentencia, $resultado);
		
					if ($rows > 0)
						$idCiudad = $resultado['PK_ID_CIUDAD'][0];
				}
			}
		}
		
		if ($cambioCiudad) {
			$query = "SELECT p.NOMBRE_PAIS, e.NOMBRE_EDO, c.NOMBRE_CIUDAD
		          	  FROM CIUDAD c, ESTADO e, PAIS p
				      WHERE c.PK_ID_CIUDAD = $idCiudad
				      AND c.PK_FK_ID_ESTADO = e.PK_ID_ESTADO
				      AND c.PK_FK_ID_PAIS = p.PK_ID_PAIS";
				  
			$sentencia = OCIParse($conexion, $query);
		
			OCIExecute($sentencia);
		
			OCILogOff($conexion);
		
			$rows = OCIFetchstatement($sentencia, $resultado);
		
			if ($rows > 0) {
				$pais = $resultado['NOMBRE_PAIS'][0];
				$estado = $resultado['NOMBRE_EDO'][0];
				$ciudad = $resultado['NOMBRE_CIUDAD'][0];
			}
			
			$mensaje = '<font size="+1" color="#FFFFFF">¡INSERCIÓN EXITOSA!</font>';
		}
		
		else if ($cambioEstado) {
			$query = "SELECT p.NOMBRE_PAIS, e.NOMBRE_EDO
		          	  FROM ESTADO e, PAIS p
				      WHERE e.PK_ID_ESTADO = $idEstado
				      AND e.PK_FK_ID_PAIS = p.PK_ID_PAIS";
				  
			$sentencia = OCIParse($conexion, $query);
		
			OCIExecute($sentencia);
		
			OCILogOff($conexion);
		
			$rows = OCIFetchstatement($sentencia, $resultado);
		
			if ($rows > 0) {
				$pais = $resultado['NOMBRE_PAIS'][0];
				$estado = $resultado['NOMBRE_EDO'][0];
			}
			
			$mensaje = '<font size="+1" color="#FFFFFF">¡INSERCIÓN EXITOSA!</font>';
		}
		
		else if ($cambioPais) {
			$query = "SELECT NOMBRE_PAIS
		          	  FROM PAIS
				      WHERE PK_ID_PAIS = $idPais";
				  
			$sentencia = OCIParse($conexion, $query);
		
			OCIExecute($sentencia);
		
			OCILogOff($conexion);
		
			$rows = OCIFetchstatement($sentencia, $resultado);
		
			if ($rows > 0)
				$pais = $resultado['NOMBRE_PAIS'][0];
				
			$mensaje = '<font size="+1" color="#FFFFFF">¡INSERCIÓN EXITOSA!</font>';
		}
		
		else
			$mensaje = '<font color="#FFFFFF" size="+1">¡Datos incorrectos o duplicados!</font>';
		
		$pais = '<font color="#FFFFFF">' . ucwords($pais) . '</font>';
		$errorPais = '';
		$estado = '<font color="#FFFFFF">' . ucwords($estado) . '</font>';
		$errorEstado = '';
		$ciudad = '<font color="#FFFFFF">' . ucwords($ciudad) . '</font>';
		$errorCiudad = '';
		
		/**
         * Instanciando un objeto de la clase que genera la respuesta con ajax
         */
        $respuesta = new xajaxResponse();

        /**
         * Escribiendo en las capas (div) con id = nombre, tipo, costo, descripcion
		 * En cada capa se crea el campo de texto con el valor defecto traído de la base de datos
         */
		$respuesta -> assign("pais", "innerHTML", $pais);
		$respuesta -> assign("errorPais", "innerHTML", $errorPais);
		$respuesta -> assign("estado", "innerHTML", $estado);
		$respuesta -> assign("errorEstado", "innerHTML", $errorEstado);
		$respuesta -> assign("ciudad", "innerHTML", $ciudad);
		$respuesta -> assign("errorCiudad", "innerHTML", $errorCiudad);
		
		$respuesta -> assign("borrar", "innerHTML", "");
		$respuesta -> assign("registrar", "innerHTML", "");
		
		$respuesta -> assign("mensaje", "innerHTML", $mensaje);	
		
		/**
         * Devolviendo el objeto que genera la respuesta con ajax
         */
        return $respuesta;
	}
	
	/**
     * Asociando la función creada al objeto xajax
     */
    $xajax -> registerFunction("insertar_direccion");
	 
	function validarPais($pais) {
		$respuesta = new xajaxResponse();
		
		if ($pais == '') {
			$respuesta -> assign("errorPais", "innerHTML", '<font color="#990000" size="-1">* Campo obligatorio</font>');
			$respuesta -> assign("errorP", "innerHTML", '<input name="errorPais" type="hidden" value="true" />');
		}
		 
		else {
			$conexion = OCILogon('spa', '1234') or die("¡No se pudo conectar a la base de datos!") or die(OCIError());
			
			$query = "SELECT PK_ID_PAIS
			          FROM PAIS
					  WHERE NOMBRE_PAIS = INITCAP('$pais')";
					  
			$sentencia = OCIParse($conexion, $query);
			
			OCIExecute($sentencia);
			
			OCILogOff($conexion);
			
			$rows = OCIFetchstatement($sentencia, $resultado);
			
			if ($rows > 0) {
				$respuesta -> assign("errorPais", "innerHTML", '<font color="#FFFFFF" size="-1">* Ya registrado</font>');
				$respuesta -> assign("errorP", "innerHTML", '<input name="errorPais" type="hidden" value="false" />');
			}
				
			else {
				$respuesta -> assign("errorPais", "innerHTML", '');
				$respuesta -> assign("errorP", "innerHTML", '<input name="errorPais" type="hidden" value="false" />');
			}
		}
		
		return $respuesta;
	}
	 
	$xajax -> registerFunction("validarPais");
	 
	function validarEstado($pais, $estado) {
		$respuesta = new xajaxResponse();
		 
		$conexion = OCILogon('spa', '1234') or die("¡No se pudo conectar a la base de datos!") or die(OCIError());
			
		$idPais = "SELECT PK_ID_PAIS FROM PAIS WHERE NOMBRE_PAIS = INITCAP('$pais')";					  
		$query = "SELECT PK_ID_ESTADO
		          FROM ESTADO
				  WHERE PK_FK_ID_PAIS = ($idPais)
				  AND NOMBRE_EDO = INITCAP('$estado')";
						  
		$sentencia = OCIParse($conexion, $query);
				
		OCIExecute($sentencia);
		
		OCILogOff($conexion);
				
		$rows = OCIFetchstatement($sentencia, $resultado);
				
		if ($rows > 0) {
			$respuesta -> assign("errorEstado", "innerHTML", '<font color="#FFFFFF" size="-1">* Ya registrado</font>');
			$respuesta -> assign("errorE", "innerHTML", '<input name="errorEstado" type="hidden" value="false" />');	
		}
				
		else {
			$respuesta -> assign("errorEstado", "innerHTML", '');
			$respuesta -> assign("errorE", "innerHTML", '<input name="errorEstado" type="hidden" value="false" />');
		}
		 
		return $respuesta;
	}
	 
	$xajax -> registerFunction("validarEstado");
	
	function validarCiudad($pais, $estado, $ciudad) {
		$respuesta = new xajaxResponse();
		
		$conexion = OCILogon('spa', '1234') or die("¡No se pudo conectar a la base de datos!") or die(OCIError());
			
		$idPais = "SELECT PK_ID_PAIS FROM PAIS WHERE NOMBRE_PAIS = INITCAP('$pais')";
		$idEstado = "SELECT PK_ID_ESTADO FROM ESTADO WHERE NOMBRE_EDO = INITCAP('$estado')";
		$query = "SELECT PK_ID_CIUDAD
		          FROM CIUDAD
				  WHERE PK_FK_ID_PAIS = ($idPais)
				  AND PK_FK_ID_ESTADO = ($idEstado)
				  AND NOMBRE_CIUDAD = INITCAP('$ciudad')";
						  
		$sentencia = OCIParse($conexion, $query);
				
		OCIExecute($sentencia);
		
		OCILogOff($conexion);
				
		$rows = OCIFetchstatement($sentencia, $resultado);
				
		if ($rows > 0) {
			$respuesta -> assign("errorCiudad", "innerHTML", '<font color="#FFFFFF" size="-1">* Ya registrada</font>');
			$respuesta -> assign("errorC", "innerHTML", '<input name="errorCiudad" type="hidden" value="false" />');	
		}
				
		else {
			$respuesta -> assign("errorCiudad", "innerHTML", '');
			$respuesta -> assign("errorC", "innerHTML", '<input name="errorCiudad" type="hidden" value="false" />');
		}
			
		return $respuesta;
	}
	 
	$xajax -> registerFunction("validarCiudad");
	
	function reiniciarCamposErrores() {
		$respuesta = new xajaxResponse();
		
		$respuesta -> assign("errorPais", "innerHTML", '');
		$respuesta -> assign("errorP", "innerHTML", '<input name="errorPais" type="hidden" value="false" />');
		
		$respuesta -> assign("errorEstado", "innerHTML", '');
		$respuesta -> assign("errorE", "innerHTML", '<input name="errorEstado" type="hidden" value="false" />');
		
		$respuesta -> assign("errorCiudad", "innerHTML", '');
		$respuesta -> assign("errorC", "innerHTML", '<input name="errorCiudad" type="hidden" value="false" />');
		
		return $respuesta;
	}
	
	$xajax -> registerFunction("reiniciarCamposErrores");
	
	/**
     * Ejecutando el método del objeto xajax que permite procesar las
     * peticiones que puedan llegar desde la página
     */
     $xajax -> processRequest();
	 
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Design by Free CSS Templates
http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License

Name       : Beach Sunset
Description: A two-column, fixed-width design for 1024x768 screen resolutions.
Version    : 1.0
Released   : 20090416

-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Insertar nueva dirección</title>
	<?php
    	/**
         * Indicando al objeto xajax que se encargue de generar el código
         * javascript necesario para procesar las llamadas a ajax
         */
        $xajax -> printJavascript("xajax/");
	?>
    <script>
		function insertarDireccion() {
			errorPais = document.direccion.errorPais.value;
			errorEstado = document.direccion.errorEstado.value;
			errorCiudad = document.direccion.errorCiudad.value;
			
			if ((errorPais == 'false') && (errorEstado == 'false') && (errorCiudad == 'false'))
				xajax_insertar_direccion(xajax.getFormValues('direccion'));
				
			else
				alert("¡La dirección presenta inconvenientes, revise e intente de nuevo!");
		}
	</script>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
<style type="text/css">
<!--
.Estilo2 {font-size: 12px; color: #FF6600; }
.Estilo3 {font-size: 12px; color: #FF9900; }
.Estilo4 {color: #FF6600}
.Estilo5 {font-size: 24px}
.Estilo7 {color: #FFFFFF}
.Estilo8 {font-size: 12px; color: #FFFFFF; }
.Estilo9 {font-size: 60px}
.Estilo10 {color: #F0F0F0}
-->
</style>
</head>
<body>

<div id="wrapper">
		<div id="header">	
 <br />
		<div id="menu">				      
				<li  class="active"><a href="HOME.php" title="HOME">HOME</a></li>
				<li><a href="INSERTAR.php" title="INSERTAR">INSERTAR</a></li>
				<li><a href="ELIMINAR.php" title="ELIMINAR">ELIMINAR</a></li>
				<li><a href="CONSULTAR.php" title="CONSULTAR">CONSULTAR</a></li>
				<li><a href="MODIFICAR.php" title="MODIFICAR">MODIFICAR</a></li>
                <li><a href="MOSTRAR.php" title="MOSTRAR">MOSTRAR</a></li>
	  	</div>  <!-- end #menu -->	
  </div>    <!-- end #header -->	

		<div id="logo">
			<h1><a href="#"><span class="">Take a Rest</span> ... </a></h1>
		    <div align="left"></div>
		</div>
		<!-- end #logo -->	
        
</div> <!-- end *header- wrapper -->

<div id="page">

	<div id="sidebar">
		<ul>
			<li>
				<h2>Acciones</h2>
				<p class="Estilo2">Pulse sobre una acción para ejecutarla</p>
			</li>
            <li>
            	<font color="#FFFFFF">&raquo; <a href="InsertarDireccion.php" class="Estilo10">Agregar una nueva dirección</a></font>
            </li>
            <li>
            	<font color="#FFFFFF">&raquo; <a href="ModificarDireccion.php" class="Estilo10">Modificar una dirección existente</a></font>
            </li>
            <li>
            	<font color="#FFFFFF">&raquo; <a href="EliminarDireccion.php" class="Estilo10">Eliminar una dirección</a></font>
            </li>
            <?php
				if ($rif != '') {
					$linkRegresar = '<li>';
					$linkRegresar .= '<font color="#FFFFFF">';
					$linkRegresar .= '&raquo; <a href="ConsultarLocal.php?rif=' . $rif . '" class="Estilo10">Regresar al local</a>';
					$linkRegresar .= '</li>';
					
					echo $linkRegresar;
				}
			?>
		</ul>
</div>

	<div id="content">
  <h1 align="center"><font color="#FFFFFF">Insertar dirección</font></h1>
  <p>&nbsp;</p>
  <div align="center">
  <form id="direccion" name="direccion">
  <table width="509" border="0" cellpadding="5" cellspacing="5">
  <tr>
    <td width="246" align="right"><font color="#FFFFFF" size="+1">Pais</font></td>
    <td width="247" align="left"><div id="pais"><input name="pais" type="text" id="pais" size="40" maxlength="20" onblur="xajax_validarPais(document.direccion.pais.value)" /></div></td>
  </tr>
  <tr>
  	<td></td>
    <td><div id="errorPais"><font color="#990000" size="-1">* Campo obligatorio</font></div></td>
    <td><div id="errorP"><input name="errorPais" type="hidden" value="true" /></div></td>
  </tr>
  <tr>
    <td align="right"><font color="#FFFFFF" size="+1">Estado</font></td>
    <td align="left"><div id="estado"><input name="estado" type="text" id="estado" size="40" maxlength="20" onblur="xajax_validarEstado(document.direccion.pais.value, document.direccion.estado.value)" /></div></td>
  </tr>
  <tr>
  	<td></td>
    <td><div id="errorEstado"></div></td>
    <td><div id="errorE"><input name="errorEstado" type="hidden" value="false" /></div></td>
  </tr>
  <tr>
    <td align="right"><font color="#FFFFFF" size="+1">Ciudad</font></td>
    <td align="left"><div id="ciudad"><input name="ciudad" type="text" id="ciudad" size="40" maxlength="20" onblur="xajax_validarCiudad(document.direccion.pais.value, document.direccion.estado.value, document.direccion.ciudad.value)" /></div></td>
  </tr>
  <tr>
  	<td></td>
    <td><div id="errorCiudad"></div></td>
    <td><div id="errorC"><input name="errorCiudad" type="hidden" value="false" /></div></td>
  </tr>
  <tr>
  	<td align="right"><div id="borrar"><input name="borrar" type="reset" value="Borrar todo" onclick="xajax_reiniciarCamposErrores()" /></div></td>
    <td align="left"><div id="registrar"><input name="registrar" type="button" value="Registrar" onclick="insertarDireccion()" /></div></td>
  </tr>
  <tr>
  	<td align="center" colspan="2"><div id="mensaje"></div></td>
  </tr>
  </table>
</form>
</div>

<p>&nbsp;</p>
<div id="footer">
  <p> Design by <a href="http://www.freecsstemplates.org/">Nubielis, Eduardo, Daniel </a></p>
</div>
<!-- end #footer -->

  </div>
</div>
<!-- end #page -->

</body>
</html>
